package exam_mod

// ExamSaveReq 保存请求的结构体
type ExamSaveReq struct {
	// ExamId 主键编号
	ExamId string `json:"examId"`
	// Title 问卷标题
	Title string `json:"title" v:"问卷标题,string,min=1,max=255"`
	// BeginTime 答题开始时间
	BeginTime uint32 `json:"beginTime" v:"答题开始时间"`
	// EndTime 答题结束时间
	EndTime uint32 `json:"endTime" v:"答题结束时间"`
	// Score 总分数
	Score uint16 `json:"score" v:"总分数,number,min=1,max=100"`
	// ExamTime 答题时间
	ExamTime uint8 `json:"examTime" v:"答题时间,string,min=1"`
	// ImgNames 问卷图片名称
	ImgNames string `json:"imgNames"`
	// ImgUrls 问卷图片地址
	ImgUrls string `json:"imgUrls"`
	// Remarks 备注说明
	Remarks string `json:"remarks"`
	// OptList 配置列表
	OptList []*ExamOptReq `json:"optList"`
	// SaveType 题型，1新增，2修改
	SaveType uint8 `json:"saveType"`
}

// ExamOptReq 保存请求的结构体
type ExamOptReq struct {
	// OptId 配置编号
	OptId string `json:"optId"`
	// ExamId 试卷编号
	ExamId string `json:"examId"`
	// Kind 题型，1单选，2判断，3多选，4填空，5简答
	Kind uint8 `json:"kind"`
	// Nums 题量
	Nums uint8 `json:"nums"`
	// Score 每题分值
	Score float32 `json:"score"`
	// Remarks 备注说明
	Remarks string `json:"remarks"`
}

// ExamExtVo 判断重复编码请求的结构体
type ExamExtVo struct {
	ExamId string `json:"examId"`
	Title  string `json:"title"`
}

// ExamProcReq 处理请求的结构体
type ExamProcReq struct {
	States uint8  `json:"states"`
	ExamId string `json:"examId" v:"编号,string,min=21"`
}

// ExamPageReq 获取分页列表的请求结构体
type ExamPageReq struct {
	Keywords string `json:"keywords"`
	Limit    uint8  `json:"limit"`
	Offset   uint32 `json:"offset"`
}

// ExamPageRes 获取分页列表的返回结构体
type ExamPageRes struct {
	Total any `json:"total"`
	List  any `json:"list"`
}
